#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <assert.h>
char* my_strcat(char* dest,const char* src)
{
	assert(dest && src);
	char* ret = dest;
	while (*ret != '\0')
		ret++;
	while (*ret++ = *src++)
		;
	return dest;
}
int main()
{
	char arr[20] = "hello ";
	char* s = "world";
	printf("%s\n",my_strcat(arr, s));
	return 0;
}
//char* my_strcpy(char* s1,const char* s2)
//{
//	assert(s1 && s2);
//	char* ret = s1;
//	while (*ret++=*s2++)
//		;
//	return s1;
//}
//int main()
//{
//	char s1[20] = { 0 };
//	char* s2 = "hello world";
//	printf("%s\n", my_strcpy(s1,s2));
//	return 0;
//}
//#include <stdio.h>
//#include <assert.h>
//size_t my_strlen(const char* arr)
//{
//	if (*arr == '\0')
//		return 0;
//	return 1 + my_strlen(arr + 1);
//}
//int main()
//{
//	char arr[] = "abce";
//	printf("%zd",my_strlen(arr));
//	return 0;
//}
//#include <stdio.h>
//#include <string.h>
//#include <ctype.h>
//int is(char(*p)[101], int sz) {
//    int begin = 0;
//    int end = sz - 1;
//    for (; begin < end; begin++, end--) {
//        if (p[0][begin] != p[0][end])
//            return 0;
//    }
//    return 1;
//}
//int main() {
//    int n, step = 0;
//    scanf("%d", &n);
//    char m[2][101];
//    scanf("%s", m[0]);
//    int sz = strlen(m[0]);
//    for (int i = 0; i < sz; i++) {
//        if (isdigit(m[0][i]))
//            m[0][i] -= '0';
//        if (isupper(m[0][i]))
//            m[0][i] =m[0][i]- 'A' + 10;
//    }
//    //for (int i = 0; i < sz; i++)
//    //    printf("%d", m[0][i]);
//    //printf("\n");
//    if (is(&m[0], sz))
//    {
//        printf("STEP=%d", step);
//        return 0;
//    }
//    while (step <= 30) {
//        int begin = 0;
//        int end = sz - 1;
//        int k = step % 2;
//        for (; begin <= sz - 1; begin++, end--) {
//            m[1-k][begin] = m[k][begin] + m[k][end];
//        }
//        begin = 0;
//        for (; begin < sz; begin++)
//        {
//            if (m[1-k][begin] >= n)
//            {
//                m[1-k][begin] -= n;
//                m[1-k][begin + 1]++;
//                if (begin == sz - 1)
//                {
//                    m[1-k][begin + 1] = '1' - '0';
//                    sz++;
//                }
//            }
//        }
//        //for (int i = 0; i < sz; i++)
//        //    printf("%d", m[1 - k][i]);
//        //printf("\n");
//        step++;
//        if (is(&m[1-k], sz))
//        {
//            printf("STEP=%d", step);
//            return 0;
//        }
//    }
//    printf("Impossible!");
//    return 0;
//}